#ifndef TIMELINE_H_INCLUDED
#define TIMELINE_H_INCLUDED
#include "Singleton.h"
#include <map>
#include "File.h"

class TimelineKey;
class Timeline : public Uncopyable
{
private:
	Timeline();
	friend class Singleton<Timeline>;
public:
	bool Load(const std::string& FileName);
	void Update();
	void Reset();
private:
	typedef std::multimap<float,TimelineKey*> TLKMap;
	TLKMap TheTLKMap;
	float m_Time;
	TLKMap::iterator m_it;
};


typedef Singleton<Timeline> TheTimeLine;


class TimelineKey 
{
public:
	virtual void Exec() = 0;
	virtual ~TimelineKey() {}
	virtual bool Load(File*) =0;
	virtual const char* GetTypeName() const =0;

protected:
	bool Executed;

	
};
#endif